template<typename T>
void Perm(T A[], int n, int k)
{
	int i;
	if (k==1)
	{
		for (i =0; i<n; i++)  
		{
			cout<<A[i]<<"  ";
		}
			cout<<endl;
	}
	else
	{
		for( i=n-k; i<n; i++)
		{
			Swap(A[n-k], A[i]);
			Perm(A, n, k-1);
			Swap(A[i], A[n-k]);
		}
	}
}
template<typename T>
void Swap(T &data1, T &data2)
{
	T temp;
	temp=data1;
	data1=data2;
	data2=temp;
}